﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using PiscoSourWeb.Models;
using PiscoSourDominio;

namespace PiscoSourWeb.Controllers
{
    public class ClienteController : Controller
    {
       private ClienteWS.ClientesClient clienteWS = new ClienteWS.ClientesClient();
                     
       public ActionResult Register()
        {
            var datos = new ModelUsuario().ListarUsuarios();
            ViewBag.vchUsuario = new SelectList(datos, "vchUsuario", "vchUsuario");
            return View();
        }

        [HttpPost]
        public ActionResult Register(Cliente objCliente)
        {
            if (ModelState.IsValid)
            {
                objCliente.blnActivo = "0";
                clienteWS.InsertarCliente(objCliente);
                return RedirectToAction("List");
            }

            var datos = new ModelUsuario().ListarUsuarios();
            ViewData.Model = objCliente;
            return View();
        }

        public ActionResult CambiarEstado(int id)
        {
            string result = string.Empty;
            clienteWS.ActivarCliente(id);
            return RedirectToAction("Activar");
        }

        public ActionResult Activar()
        {
            ViewBag.test = "Activar Clientes";
            var list = new ModelCliente().ListarClientesInactivos();
            return View(list);
        }

        public ActionResult List()
        {
            ViewBag.test = "Listado de Clientes";
            var list = new ModelCliente().ListarClientes();
            return View(list);
        }

        public ActionResult Login()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Login(Cliente cliente) {
            string result = string.Empty;
            if (string.IsNullOrEmpty(cliente.vchLogin) || string.IsNullOrEmpty(cliente.vchPass))
            {
                ViewBag.Error("Por favor, ingrese la información.");
                return View();
            }
            else
            {
                var objUsuario = (new ModelCliente()).ValidarCliente(cliente.vchLogin, cliente.vchPass);

                if (objUsuario != null)
                {
                    var objLocal = (new ModelCliente()).ObtenerUsuarioCliente(cliente.vchLogin, cliente.vchPass);

                    if (objLocal != null)
                    {
                        Session["objAutenticado"] = objUsuario;
                        Session["Autenticado"] = "3";
                        return RedirectToAction("List");
                    }
                    else
                    {
                        ViewBag.Error("Datos Incorrectos");
                        return View();
                    }

                }

                ViewBag.Error("Datos Incorrectos");
                return View();
            }
        }
        
        public String ValidaLogin(string login, string pass) {
            var objCliente = (new ModelCliente()).ValidarCliente(login, pass);
            Session["objCliente"] = objCliente;
            string result = string.Empty;
            if (objCliente != null) {
                Session["objAutenticado"] = objCliente;
                Session["Autenticado"] = "3";
                result = "exito";
            }
            else{
                result = "El usuario y login ingresado son incorrectos";
            }
            return result;
        }

    }
}
